package game;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.image.ImageObserver;
/**
 * Represente une cellule vide
 * @author Roch Julien
 * @version 1
 *
 */
public class EmptyCell extends GameObject{
	
	/**
	 * pour la serializaion
	 */
	private static final long serialVersionUID = -1472631991737117776L;
	private static final int NB_POINTS=0;
	private int nbMinesAround;
	private Color txtColor;
	/**
	 * Constructeur
	 * @param point la position de la case
	 * @param nbMinesAround Nombre de mines autour de la case
	 */
	public EmptyCell(Point point, int nbMinesAround) {
		this(point,nbMinesAround,Color.BLACK);
	}
	/**
	 * Constructeur
	 * @param point la position de la case
	 * @param nbMinesAround Nombre de mines autour de la case
	 * @param txtColor La couleur du texte
	 */
	public EmptyCell(Point point, int nbMinesAround, Color txtColor) {
		super(point);
		this.nbMinesAround = nbMinesAround;
		this.txtColor = txtColor;
	}
	/**
	 * Lors du clique : Ajoute des points au joueur 
	 */
	public void visit(ServersideGame internals, String player){
		internals.addPoints(player, NB_POINTS);
		// le joueur rejoue, pas de modification du prochain joueur
	}

	@Override
	/**
	 * Dessine la case
	 */
	public void draw(Graphics g, Dimension d, ImageObserver observer) {
		g.fillRoundRect(0, 0, d.width, d.height,15,15);
		if(nbMinesAround!=0){
			g.setColor(txtColor);
			g.drawString((new Integer(nbMinesAround)).toString(), 12, 20);
		}
		g.setColor(Color.BLACK);
	}
	/**
	 * @return the nbMinesAround
	 */
	public int getNbMinesAround() {
		return nbMinesAround;
	}
	/**
	 * @param nbMinesAround the nbMinesAround to set
	 */
	public void setNbMinesAround(int nbMinesAround) {
		this.nbMinesAround = nbMinesAround;
	}
	
}